$(document).ready(function () {
    /*
     *  pc端判断
     */
    function IsPC() {
        var userAgentInfo = navigator.userAgent;
        var Agents = ["Android", "iPhone",
            "SymbianOS", "Windows Phone",
            "iPad", "iPod"
        ];
        var flag = true;
        for (var v = 0; v < Agents.length; v++) {
            if (userAgentInfo.indexOf(Agents[v]) > 0) {
                flag = false;
                break;
            }
        }
        return flag;
    }

    /*
     * 随机数
     * */
    function _charecter() {
        var character = String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0));
        return character;
    }

    /*
     *  补0
     */
    function addzero(num) {
        if (num < 10) {
            return ("0" + num);
        } else {
            return num;
        }
    }

    /*
     *  视频事件监听事件
     *
     * 	@eventName 视频事件名称
     *  @m	视频对象
     * 	@fun 回调函数
     *
     */
    var eventTester = function (eventName, m, fun) {
        if (window.addEventListener) {
            m.addEventListener(eventName, function () {
                if (fun) {
                    fun(this);
                }
                //console.log((new Date()).getTime(),eventName);
            }, false);
        } else {
            m.attachEvent('on' + eventName, function () {
                if (fun) {
                    fun(this);
                }
                // console.log((new Date()).getTime(),eventName);
            });
        }
    }
    /*
     *  视频播放
     *
     */
    //视频播放
    $(".m-video").on("click", function () {
        if ($(".video-box").length > 0) {
            return;
        }
        document.ondragstart = function () {
            return false;
        };
        window.onresize = function () {
            iteme = setTimeout(function () {
                if (!checkFull()) {
                    //要执行的动作
                    $("body").removeClass("noscroll");
                    $(".video-box").removeClass("quanping");
                    $(".video-fullscreen").find("i").removeClass("i-suoxiao").addClass("i-quanping");
                } else {
                    $("body").addClass("noscroll");
                    $(".video-box").addClass("quanping");
                    $(".video-fullscreen").find("i").removeClass("i-quanping").addClass("i-suoxiao");
                }
            }, 0)
        }

        function checkFull() {
            var explorer = window.navigator.userAgent.toLowerCase();
            console.log(window.screen.width, window.outerWidth, window.screen.height, window.outerHeight)
            if (explorer.indexOf('chrome') > 0) { //chrome
                if ((window.screen.width - window.outerWidth <= 17) && (window.screen.height - window.outerHeight <= 17)) {
                    return true;
                } else {
                    return false;
                }
            } else { //IE 9+  fireFox
                if (window.outerWidth == screen.width) {
                    return true;
                } else {
                    return false;
                }
            }
        }

        function quanpin(elem) {
            if (IsPC()) {
                var elem = document.documentElement;
            } else {
                if (elem.paused && elem.networkState <= elem.HAVE_METADATA) {
                    elem.play();
                    setTimeout(function () {
                        elem.pause();
                        elem.webkitEnterFullScreen();
                        return;
                    }, 0);
                } else {
                    elem.webkitEnterFullScreen();
                    return;
                }
            }
            if (elem.requestFullscreen) {
                //"W3C";
                elem.requestFullscreen();
            } else if (elem.mozRequestFullScreen) {
                //FireFox
                elem.mozRequestFullScreen();

            } else if (elem.webkitRequestFullScreen) {
                //Chrome等
                elem.webkitRequestFullScreen();

            } else if (elem.msRequestFullscreen) {
                //IE11
                console.log(11);
                elem.msRequestFullscreen();
            }
        }

        function exitquanping() {
            if (document.exitFullscreen) {

                document.exitFullscreen();

            } else if (document.mozCancelFullScreen) {

                document.mozCancelFullScreen();

            } else if (document.webkitCancelFullScreen) {

                document.webkitCancelFullScreen();

            } else if (document.msExitFullscreen) {

                document.msExitFullscreen();

            }
        }

        var menuarr;
        var menustr = "";
        if ($(this).attr("data-menu")) {
            menuarr = $(this).attr("data-menu").split(" ");
            $(menuarr).each(function (k) {
                menustr += "<li class='video-menu-item video-menu-item-" + k + " " + (k == 0 ? "video-active" : "") + "'  >" + this + "</li>";
            })
        }

        var datasrc = $(this).attr("data-src"), src = '';
        var dangqian = "";
        if (src.indexOf("mp4") < 0 && $(this).attr("data-menu")) {
            dangqian = menuarr[0];
            src = datasrc + dangqian + ".mp4";
        } else {
            src = datasrc;
        }
        if (!src) {
            alert("未添加视频链接");
        }
        console.log(src);
        var menu = ["<div class='video-definition video-tooltip '>",
            "<button class='video-button video-tooltip-toggle video-definition-button'>",
            "<span>" + dangqian + "</span>",
            "</button>",
            "<div class='video-tooltip-content'>",
            "<ul class='video-menu'>",
            menustr,
            "</ul>",
            "</div>",
            "</div>"];
        if (!$(this).attr("data-menu")) {
            menu = []
        }
        var vClass = $(this).attr("data-heibian") ? "heibian" : "";
        var videoid = "my" + _charecter() + _charecter();
        var iteme = null;
        var str = ["<div class='video-box " + vClass + "' id='" + videoid + "box'>",
            "<div class='video-bg'></div>",
            "<div class='video-loading-pulse'></div>",
            "<div class='video-close'></div>",
            "<div class='video-container f-czspjuzhong'>",
            "<div class='video-div'>",
            "<div class='video-video'>",
            "<video id=" + videoid + "  x-webkit-airplay='' playsinline='' webkit-playsinline='' ",
            "src='" + src + "'",
            ">",
            "</video>",
            "</div>",
            "<div class='video-bofang f-czspjuzhong '> <i class='i i-bofang '></i></div>",
            "<div class='video-loading yihuanchun f-czspjuzhong'> <i class='i i-loading '></i></div>",
            "<div class='video-ui'>",
            "<div class='video-progress'>",
            "<div class='video-tooltip video-tinytip video-tooltip-time'>",
            "<button class='video-tooltip-toggle'>",
            "<span class='video-tooltip-value'></span>",
            "</button>",
            "<div class='video-tooltip-content'>",
            "<div class='video-tinytip-content'>",
            "<span class='video-text'></span>",
            "</div>",
            "</div>",
            "</div>",
            "<div class='video-progress-padding'></div>",
            "<div class='video-progress-list'>",
            "<div class='video-progress-buffer'></div>",
            "<div class='video-progress-hover'></div>",
            "<div class='video-progress-play'><span class='video-progress-handle'></span></div>",
            "</div>",
            "</div>",
            "<div class='video-controls-buttons'>",
            "<button class='video-bofang video-button'> <i class='i i-bofang f-czspjuzhong'></i></button>",
            "<span class='video-time-panel'>",
            "<span class='video-time-panel-current'>00:00</span>",
            "<span class='video-time-panel-split'>&nbsp&nbsp/&nbsp&nbsp</span>",
            "<span class='video-time-panel-total'>00:00</span>",
            "</span>",
            "<div class='video-fullscreen'>",
            "<button class='video-button video-tooltip-toggle video-fullscreen-default' type='button'>",
            "<i class='i i-quanping f-czspjuzhong'></i>",
            "</button>",
            "</div>",
            menu.join(""),
            "<div class='video-volume video-popup'>",
            "<button class='video-button video-btn-volume' data-state='volume'>",
            "<i class='i i-voice-on f-czspjuzhong'></i>",
            "</button>",
            "<div class='video-volume-slider video-popup-content'>",
            "<div class='video-volume-range'>",
            "<div class='video-volume-range-current' style='height: 50%;'>",
            "<div class='video-volume-handle'></div>",
            "</div>",
            "</div>",
            "<div class='video-tinytip-tiao'></div>",
            "</div>",
            "</div>",
            "</div>",
            "</div>",
            "</div>",
            "</div>",
            "</div>"
        ]
        $("body").append(str.join(""));
        var meido = document.getElementById(videoid);
        meido.volume = .5;
        var videobox = $("#" + videoid + "box");

        /*视频缓存成功可以获取长度和播放*/
        eventTester("waiting", meido, function () {
            console.log(" 等待数据，并非错误");
            $(".video-loading").removeClass("yihuanchun");
        });
        eventTester("playing", meido, function () {
            console.log("播放了");
            videobox.addClass("video-playing").removeClass("video-pause");
            $(".video-loading").addClass("yihuanchun");
        });
        eventTester("stalled", meido, function () {
            console.log("/网速失速");
        });
        eventTester("ended", meido, function () {
            //console.log("播放结束");
//			$(".video-close").click();
        });
        eventTester("canplay", meido, function () {
            //console.log("可以播放");
            $(".video-container", videobox).addClass("video-ready");
            meido.canplay = true;
            meido.play();
            $(".video-bofang").find("i").removeClass("i-bofang").addClass("i-zhanting").css("transition", "none");
        });
        eventTester("loadedmetadata", meido, function () {
            //console.log("成功获取时长")
            $(".video-time-panel-total").html(addzero(parseInt(meido.duration / 60)) + ":" + addzero(parseInt(meido.duration % 60)));
        });
        eventTester("suspend", meido, function () {
//			$(".video-loading").removeClass("yihuanchun");
            console.log("延迟下载")
        })
        eventTester("loadstart", meido, function () {
            console.log("客户端开始请求数据")
            $(".video-loading").removeClass("yihuanchun");
        })
        eventTester("progress", meido, function () {
            $(".video-container", videobox).addClass("video-ready");
            console.log("客户端正在请求数据")
        })
        /*进度相关*/
        eventTester("timeupdate", meido, function () {
            //console.log("播放时间改变");
            if (meido.canplay) {
                var currentTime = meido.currentTime;
                var buffered = meido.buffered.end(0);
                var duration = meido.duration;
                for (var i = 0; i < meido.buffered.length; i++) {
                    if (currentTime < meido.buffered.end(i)) {
                        buffered = meido.buffered.end(i);
                        break;
                    }
                }
                var buff_pro = parseInt((buffered / duration) * 100);
                $(".video-time-panel-current").html(addzero(parseInt(currentTime / 60)) + ":" + addzero(parseInt(currentTime % 60)));
                $(".video-progress-play").css("width", currentTime / duration * 100 + "%");
                $(".video-progress-buffer").css("width", buff_pro + "%");
            }
        });
        var mx = 0;
        $(document).on("mousemove", function (e) {
            mx = e.screenX;
        })
        eventTester("play", meido, function (e) {
            videobox.addClass("video-playing").removeClass("video-pause");
            $(".video-bofang.f-czspjuzhong").addClass("video-hide");
            //var ny=e.cy
            var px = mx;
            clearTimeout(iteme);
            iteme = setTimeout(function () {
                if (px == mx) {
                    $(".video-div").addClass("video-hide-ui");
                }
            }, 5000);
        });
        eventTester("pause", meido, function () {
            videobox.addClass("video-pause").removeClass("video-playing");
            $(".video-bofang.f-czspjuzhong").removeClass("video-hide");
        });
        eventTester("ended", meido, function () {
            videobox.removeClass("video-pause video-playing");
            $(".video-bofang").find("i").removeClass("i-zhanting").addClass("i-bofang");
//			$(".video-bofang.f-czspjuzhong").removeClass("video-hide");
        });
        /*
         * 播放暂停切换
         *
         * */
        $(".video-bofang,.video-video").on("click", function (e) {
            if (IsPC() || e.currentTarget.classList[0] == "video-bofang" || e.target.classList[0] == "video-bofang") {
                clearTimeout(iteme);
                iteme = setTimeout(function () {
                    //do function在此处写单击事件要执行的代码
                    if ($(".video-bofang").find("i").hasClass("i-bofang")) {
                        meido.play();
                        $(".video-bofang").find("i").removeClass("i-bofang").addClass("i-zhanting");
                    } else {
                        meido.pause();
                        $(".video-bofang").find("i").removeClass("i-zhanting").addClass("i-bofang");
                    }
                }, 100);
            } else {
                if (videobox.hasClass("hideui")) {
                    videobox.removeClass("hideui");
                } else {
                    videobox.addClass("hideui");
                }
            }
        });
        /*
         * 双击全屏
         *
         * */
        $(".video-video").on("dblclick", function () {
            if (IsPC()) {
                clearTimeout(iteme);
                if (videobox.hasClass("quanping")) {
                    exitquanping();
                } else {
                    quanpin();
                }
            }
        });
        /*
         *
         *  鼠标移入隐藏UI
         *
         * */
        $(".video-ui").on("mouseleave", function () {
            clearTimeout(iteme);
            iteme = setTimeout(function () {
                //do function在此处写单击事件要执行的代码
                $(".video-div").addClass("video-hide-ui");
            }, 5000);

        });
        $(".video-ui").on("mouseenter", function () {
            $(".video-div").removeClass("video-hide-ui");
        });
        /*
         *
         *  关闭video
         *
         * */
        $(".video-close").on("click touchstart", function () {
            videobox.remove();
        });
        //进度条面板相对浏览器的左边的距离
        var parent_left = 0;
        //鼠标位置相对浏览器的左边的距离
        var e_left = 0;
        /*
         *  进度条
         */
        $(".video-progress", videobox).on("mousemove touchmove", function (e) {
            var event;
            if (e.offsetX) {
                event = e;
            } else if (e.originalEvent.changedTouches[0].clientX) {
                event = e.originalEvent.changedTouches[0];
            }
            parent_left = $(this).offset().left;
            //鼠标位置相对浏览器的左边的距离
            e_left = event.pageX;
            var width = e_left - parent_left;
            var wb = (width / $(this).width());
            var tt = wb * meido.duration;
            $(".video-tooltip", $(this)).css({
                "left": (wb * 100) + "%"
            });
            $(".video-progress-hover", videobox).css({
                "width": (wb * 100) + "%"
            });
            $(".video-text", videobox).html(addzero(parseInt(tt / 60)) + ":" + addzero(parseInt(tt % 60)));
        });
        $(".video-progress", videobox).on("click touchstart touchend", function (e) {
            videobox.removeClass("video-playing");
            var percent = ($(".video-progress-hover", videobox).width() / $(this).width());
            console.log(percent);
            meido.currentTime = (percent * meido.duration);
        });
        /*
         *  音量
         */
        var canMove = false;
        $(".video-tinytip-tiao", videobox).on("mousedown", function (e) {
            canMove = true;
            console.log(canMove);
            var zi = $(".video-volume-range-current", videobox);
            if (canMove) {
                volumeh = 1 - e.offsetY / $(this).height();
                console.log(volumeh);
                zi.css("height", volumeh * 100 + "%")
            } else {
                return;
            }
        });
        $(document).on("mouseup", function (e) {
            canMove = false;
        });
        var volumeh = 0;
        $(".video-tinytip-tiao", videobox).on("mousemove ", function (e) {
            var zi = $(".video-volume-range-current", videobox);
            var hh = $(".video-volume-range", videobox);
            if (canMove) {
                console.log(e);
                volumeh = 1 - (e.offsetY - 16) / hh.height();
                console.log(volumeh);
                if (volumeh <= 0) {
                    $(".video-btn-volume i").removeClass("i-voice-on").addClass("i-voice-off");
                } else if (volumeh > 1) {
                    volumeh = 1;
                } else {
                    $(".video-btn-volume i").removeClass("i-voice-off").addClass("i-voice-on");
                }
                zi.css("height", volumeh * 100 + "%")
                meido.volume = volumeh;
            } else {
                return;
            }
        });
        $(".video-btn-volume", videobox).on("click", function () {
            if ($(this).find("i").hasClass("i-voice-on")) {
                meido.volume = false;
                volumeh = $(".video-volume-range-current", videobox).height() / $(".video-volume-range", videobox).height();
                console.log(volumeh);
                $(".video-volume-range-current", videobox).css("height", 0 + "%");
                $(".video-btn-volume i").removeClass("i-voice-on").addClass("i-voice-off");
            } else {
                meido.volume = true;
                $(".video-volume-range-current", videobox).css("height", volumeh * 100 + "%");
                $(".video-btn-volume i").removeClass("i-voice-off").addClass("i-voice-on");
            }
        })
        /*
         *  音量  结尾
         */
        /*
         *  全屏
         */
        $(".video-fullscreen", videobox).on("click", function () {
            if ($(this).find("i").hasClass("i-quanping")) {
                quanpin(meido);
            } else {
                console.log("退出全屏");
                exitquanping();
            }
        })
        /*
         *  全屏结尾
         */

        /*
         *  切换清晰度
         */
        $(".video-menu-item").on("click", function () {
            if ($(this).hasClass("video-active")) {
                return;
            }
            $(this).addClass("video-active").siblings().removeClass("video-active");
            $(".video-definition-button span").html($(this).html());
            var duration = meido.currentTime;
            meido.canplay = false;
            meido.pause();
            meido.src = datasrc + $(this).html() + ".mp4";
            meido.currentTime = duration;
        });
    });
})